iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0
Vue.js

Vue3 - 從零開始學系列 第 25

Vue3 - 從零開始學 - Day25 - Composition 生命週期

  • 分享至 

  • xImage
  •  

這個單元繼續討論 Composition API,那麼在生命週期上與 Option API 的寫法上有什麼不同?

與之前 Day19 介紹的 Option API 有所不同,只剩下 onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted 這些生命週期可以呼叫,例如:

<template>
</template>

<script>
import {
  onBeforeMount,
  onMounted,
  onBeforeUpdate,
  onUpdated,
  onBeforeUnmount,
  onUnmounted,
  ref,
} from 'vue';

export default {
  name: 'App',
  setup() {
    onBeforeMount(() => {
      console.log('onBeforeMount');
    });
    onMounted(() => {
      console.log('onMounted');
    });
    onBeforeUpdate(() => {
      console.log('onBeforeUpdate');
    });
    onUpdated(() => {
      console.log('onUpdated');
    });
    onBeforeUnmount(() => {
      console.log('onBeforeUnmount');
    });
    onUnmounted(() => {
      console.log('onUnmounted');
    });
  },
};
</script>

此外,也可以將與 UI 邏輯相關的程式放在 onMounted 裡:

<template>
  <input type="text" ref="inputRef" />
</template>

<script>
import { onMounted, ref } from 'vue';

export default {
  name: 'App',
  setup() {
    const inputRef = ref(null);

    onMounted(() => {
      console.log('onMounted');

      //測試 onMounted
      inputRef.value.focus();
    });
    
    return {
      inputRef,
    };
  },
};
</script>

在這裡放使用了 inputRef.value.focus(); 一樣是網頁呈現完成後,可以直接指定 <input type="text" ref="inputRef" /> 這個輸入框。

今日程式碼範例

Vue3 - 從零開始學 - Day25 [完]


上一篇
Vue3 - 從零開始學 - Day24 - Composition 監聽
下一篇
Vue3 - 從零開始學 - Day26 - Composition 元件
系列文
Vue3 - 從零開始學31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言